{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Datawhale 零基础入门数据挖掘-Task5 模型融合\n",
    "\n",
    "## 五、模型融合\n",
    "\n",
    "Tip:此部分为零基础入门数据挖掘的 Task5 模型融合 部分，带你来了解各种模型结果的融合方式，在比赛的攻坚时刻冲刺Top，欢迎大家后续多多交流。\n",
    "\n",
    "**赛题：零基础入门数据挖掘 - 二手车交易价格预测**\n",
    "\n",
    "地址：https://tianchi.aliyun.com/competition/entrance/231784/introduction?spm=5176.12281957.1004.1.38b02448ausjSX "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 5.1 模型融合目标\n",
    "\n",
    "* 对于多种调参完成的模型进行模型融合。\n",
    "\n",
    "* 完成对于多种模型的融合，提交融合结果并打卡。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 5.2  内容介绍\n",
    "\n",
    "模型融合是比赛后期一个重要的环节，大体来说有如下的类型方式。\n",
    "\n",
    "1.  简单加权融合:\n",
    "    - 回归（分类概率）：算术平均融合（Arithmetic mean），几何平均融合（Geometric mean）；\n",
    "    - 分类：投票（Voting)\n",
    "    - 综合：排序融合(Rank averaging)，log融合\n",
    "\n",
    "\n",
    "2.  stacking/blending:\n",
    "    - 构建多层模型，并利用预测结果再拟合预测。\n",
    "\n",
    "\n",
    "4.  boosting/bagging（在xgboost，Adaboost,GBDT中已经用到）:\n",
    "    - 多树的提升方法"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 5.3 Stacking相关理论介绍"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 1)  什么是 stacking\n",
    "\n",
    "简单来说 stacking 就是当用初始训练数据学习出若干个基学习器后，将这几个学习器的预测结果作为新的训练集，来学习一个新的学习器。"
   ]
  },
  {
   "attachments": {
    "image.png": {
     "image/png": "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"
    }
   },
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "![image.png](attachment:image.png)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "将个体学习器结合在一起的时候使用的方法叫做结合策略。对于分类问题，我们可以使用投票法来选择输出最多的类。对于回归问题，我们可以将分类器输出的结果求平均值。\n",
    "\n",
    "上面说的投票法和平均法都是很有效的结合策略，还有一种结合策略是使用另外一个机器学习算法来将个体机器学习器的结果结合在一起，这个方法就是Stacking。\n",
    "\n",
    "在stacking方法中，我们把个体学习器叫做初级学习器，用于结合的学习器叫做次级学习器或元学习器（meta-learner），次级学习器用于训练的数据叫做次级训练集。次级训练集是在训练集上用初级学习器得到的。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 2)  如何进行 stacking\n",
    "算法示意图如下："
   ]
  },
  {
   "attachments": {
    "image.png": {
     "image/png": "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ot6p7so14n/kkUea2267rXHqvd/f+ta3mm984xulHnmlG4ZiQ/Nzzz3XXH/99c2nP/3p5u///u879qt+ePbZZ0tbh1HvVO33XH8AzO233755xzveUWi79NJLm1NOOaUA4G/91m81f/mXf7nQpRtloetP/uRPGgMnFhOQ8kx55OOCCy5o/vVf/7Vj+6KMcdznEniOgx/zrY5026bbdqECp6BGdf3bv/1b8+EPf7gBih/84AebX/ziF819993XbLTRRs3rX//65rrrrisuvCeffLL57ne/W/4vueSSzWmnnbZQeU5FG/CjaC+66KICtkD6Ax/4QPODH/ygWGJT5WOlPfPMMyXtySefXJT6+973vgJw3k2Vr5/nlDugOOecc5pvfvObpU2s6lD+//RP/1TK/6u/+qvmD//wD7vS2U99wPP73/9+8653vavZfffdi5XWzicNEN9qq62aL3/5ywutpna6YfxXl3YfdNBBpd+PPPLI5qGHHmre//73N1dffXUDOPHnhRde6Oiy1Xf7779/Ix8gRZO5u7e+9a3NVVdd1Zg35RIGqMOgN8sY3be/qPI2wXOEgLGoCs102gVM3vOe9zTLLrts84lPfKL567/+6wZg+b/iiisutDz32muv4salXFmerJRwjXWql5KmaPfcc8/mQx/6UPP4448X1+Db3/72Zp999inAJE07r2cA901velOxhM3LfeUrX2n22GOPQgsg6lZvu7z2f6BsoPDYY48VYFQWwDzppJOac889tyh/lss999xTrDNWb7uMQf8Dl7vvvrvBw06gpL5HH320OfHEE5vvfe97M2pfL9rUxQoGmMDyne98Z3PWWWeVC30GTfiNL3X/+K0d5jcffPDB5vjjjy8WNSve3Oh2221X3L0GR2Tjqaee6jm46kVrvk/gnI4MJHgmeM5YafcjeMCT0l5mmWWK5Wm+c/XVV29WXXXVhdbiCius0Gy55ZbFrXnvvfcW8Dz11FO7KnlK+rLLLmu22GKLoqgBFEsU+G6wwQbNAw888BLlHLRS2meccUbzyle+sihj+Ty7+OKLm5VXXrnM0XFxRvpB7xbCrLHGGqX+AAig8LnPfa7UwXLiKsYHbkj/axDRLtY6UI38NQ3Ssrq4Z939l4c1bzFOgKfncXkPlH79618vnBdVNisbbX7Hoh556vrk5dJWl3To4nKdykKX3wBJ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"
    }
   },
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "![image.png](attachment:image.png)\n",
    "> 引用自 西瓜书《机器学习》"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "* 过程1-3 是训练出来个体学习器，也就是初级学习器。\n",
    "* 过程5-9是 使用训练出来的个体学习器来得预测的结果，这个预测的结果当做次级学习器的训练集。\n",
    "* 过程11 是用初级学习器预测的结果训练出次级学习器，得到我们最后训练的模型。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    " #### 3）Stacking的方法讲解\n",
    "\n",
    "首先，我们先从一种“不那么正确”但是容易懂的Stacking方法讲起。\n",
    "\n",
    "Stacking模型本质上是一种分层的结构，这里简单起见，只分析二级Stacking.假设我们有2个基模型 Model1_1、Model1_2 和 一个次级模型Model2\n",
    "\n",
    "**Step 1.** 基模型 Model1_1，对训练集train训练，然后用于预测 train 和 test 的标签列，分别是P1，T1\n",
    "\n",
    "Model1_1 模型训练:\n",
    "\n",
    "$$\n",
    "\\left(\\begin{array}{c}{\\vdots} \\\\ {X_{train}} \\\\ {\\vdots}\\end{array}\\right) \\overbrace{\\Longrightarrow}^{\\text {Model1_1 Train} }\\left(\\begin{array}{c}{\\vdots} \\\\ {Y}_{True} \\\\ {\\vdots}\\end{array}\\right)\n",
    "$$\n",
    "\n",
    "训练后的模型 Model1_1 分别在 train 和 test 上预测，得到预测标签分别是P1，T1\n",
    "\n",
    "$$\n",
    "\\left(\\begin{array}{c}{\\vdots} \\\\ {X_{train}} \\\\ {\\vdots}\\end{array}\\right) \\overbrace{\\Longrightarrow}^{\\text {Model1_1 Predict} }\\left(\\begin{array}{c}{\\vdots} \\\\ {P}_{1} \\\\ {\\vdots}\\end{array}\\right)\n",
    "$$\n",
    "\n",
    "$$\n",
    "\\left(\\begin{array}{c}{\\vdots} \\\\ {X_{test}} \\\\ {\\vdots}\\end{array}\\right) \\overbrace{\\Longrightarrow}^{\\text {Model1_1 Predict} }\\left(\\begin{array}{c}{\\vdots} \\\\ {T_{1}} \\\\ {\\vdots}\\end{array}\\right)\n",
    "$$\n",
    "\n",
    "**Step 2.** 基模型 Model1_2 ，对训练集train训练，然后用于预测train和test的标签列，分别是P2，T2\n",
    "\n",
    "Model1_2 模型训练:\n",
    "\n",
    "$$\n",
    "\\left(\\begin{array}{c}{\\vdots} \\\\ {X_{train}} \\\\ {\\vdots}\\end{array}\\right) \\overbrace{\\Longrightarrow}^{\\text {Model1_2 Train} }\\left(\\begin{array}{c}{\\vdots} \\\\ {Y}_{True} \\\\ {\\vdots}\\end{array}\\right)\n",
    "$$\n",
    "\n",
    "训练后的模型 Model1_2 分别在 train 和 test 上预测，得到预测标签分别是P2，T2\n",
    "\n",
    "$$\n",
    "\\left(\\begin{array}{c}{\\vdots} \\\\ {X_{train}} \\\\ {\\vdots}\\end{array}\\right) \\overbrace{\\Longrightarrow}^{\\text {Model1_2 Predict} }\\left(\\begin{array}{c}{\\vdots} \\\\ {P}_{2} \\\\ {\\vdots}\\end{array}\\right)\n",
    "$$\n",
    "\n",
    "$$\n",
    "\\left(\\begin{array}{c}{\\vdots} \\\\ {X_{test}} \\\\ {\\vdots}\\end{array}\\right) \\overbrace{\\Longrightarrow}^{\\text {Model1_2 Predict} }\\left(\\begin{array}{c}{\\vdots} \\\\ {T_{2}} \\\\ {\\vdots}\\end{array}\\right)\n",
    "$$\n",
    "\n",
    "**Step 3.** 分别把P1,P2以及T1,T2合并，得到一个新的训练集和测试集train2,test2.\n",
    "\n",
    "$$\n",
    "\\overbrace{\\left(\\begin{array}{c}{\\vdots} \\\\ {P_{1}} \\\\ {\\vdots}\\end{array} \\begin{array}{c}{\\vdots} \\\\ {P_{2}} \\\\ {\\vdots}\\end{array} \\right)}^{\\text {Train_2 }}  \n",
    "and \n",
    "\\overbrace{\\left(\\begin{array}{c}{\\vdots} \\\\ {T_{1}} \\\\ {\\vdots}\\end{array} \\begin{array}{c}{\\vdots} \\\\ {T_{2}} \\\\ {\\vdots}\\end{array} \\right)}^{\\text {Test_2 }}\n",
    "$$\n",
    "\n",
    "再用 次级模型 Model2 以真实训练集标签为标签训练,以train2为特征进行训练，预测test2,得到最终的测试集预测的标签列 $Y_{Pre}$。\n",
    "\n",
    "$$\n",
    "\\overbrace{\\left(\\begin{array}{c}{\\vdots} \\\\ {P_{1}} \\\\ {\\vdots}\\end{array} \\begin{array}{c}{\\vdots} \\\\ {P_{2}} \\\\ {\\vdots}\\end{array} \\right)}^{\\text {Train_2 }} \\overbrace{\\Longrightarrow}^{\\text {Model2 Train} }\\left(\\begin{array}{c}{\\vdots} \\\\ {Y}_{True} \\\\ {\\vdots}\\end{array}\\right)\n",
    "$$\n",
    "\n",
    "$$\n",
    "\\overbrace{\\left(\\begin{array}{c}{\\vdots} \\\\ {T_{1}} \\\\ {\\vdots}\\end{array} \\begin{array}{c}{\\vdots} \\\\ {T_{2}} \\\\ {\\vdots}\\end{array} \\right)}^{\\text {Test_2 }} \\overbrace{\\Longrightarrow}^{\\text {Model1_2 Predict} }\\left(\\begin{array}{c}{\\vdots} \\\\ {Y}_{Pre} \\\\ {\\vdots}\\end{array}\\right)\n",
    "$$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "这就是我们两层堆叠的一种基本的原始思路想法。在不同模型预测的结果基础上再加一层模型，进行再训练，从而得到模型最终的预测。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Stacking本质上就是这么直接的思路，但是直接这样有时对于如果训练集和测试集分布不那么一致的情况下是有一点问题的，其问题在于用初始模型训练的标签再利用真实标签进行再训练，毫无疑问会导致一定的模型过拟合训练集，这样或许模型在测试集上的泛化能力或者说效果会有一定的下降，因此现在的问题变成了如何降低再训练的过拟合性，这里我们一般有两种方法。\n",
    "* 1. 次级模型尽量选择简单的线性模型\n",
    "* 2. 利用K折交叉验证"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "K-折交叉验证：\n",
    "训练：\n",
    "\n",
    "![Image Name](https://cdn.kesci.com/upload/image/pxyjg22419.png?imageView2/0/w/960/h/960)\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "预测：\n",
    "\n",
    "![Image Name](https://cdn.kesci.com/upload/image/pxyjgmtgey.png?imageView2/0/w/960/h/960)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 5.4 代码示例"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 5.4.1  回归\\分类概率-融合：\n",
    "\n",
    "#### 1）简单加权平均，结果直接融合"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "## 生成一些简单的样本数据，test_prei 代表第i个模型的预测值\n",
    "test_pre1 = [1.2, 3.2, 2.1, 6.2]\n",
    "test_pre2 = [0.9, 3.1, 2.0, 5.9]\n",
    "test_pre3 = [1.1, 2.9, 2.2, 6.0]\n",
    "\n",
    "# y_test_true 代表第模型的真实值\n",
    "y_test_true = [1, 3, 2, 6] "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "\n",
    "## 定义结果的加权平均函数\n",
    "def Weighted_method(test_pre1,test_pre2,test_pre3,w=[1/3,1/3,1/3]):\n",
    "    Weighted_result = w[0]*pd.Series(test_pre1)+w[1]*pd.Series(test_pre2)+w[2]*pd.Series(test_pre3)\n",
    "    return Weighted_result"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Pred1 MAE: 0.1750000000000001\n",
      "Pred2 MAE: 0.07499999999999993\n",
      "Pred3 MAE: 0.10000000000000009\n"
     ]
    }
   ],
   "source": [
    "from sklearn import metrics\n",
    "# 各模型的预测结果计算MAE\n",
    "print('Pred1 MAE:',metrics.mean_absolute_error(y_test_true, test_pre1))\n",
    "print('Pred2 MAE:',metrics.mean_absolute_error(y_test_true, test_pre2))\n",
    "print('Pred3 MAE:',metrics.mean_absolute_error(y_test_true, test_pre3))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Weighted_pre MAE: 0.05750000000000027\n"
     ]
    }
   ],
   "source": [
    "## 根据加权计算MAE\n",
    "w = [0.3,0.4,0.3] # 定义比重权值\n",
    "Weighted_pre = Weighted_method(test_pre1,test_pre2,test_pre3,w)\n",
    "print('Weighted_pre MAE:',metrics.mean_absolute_error(y_test_true, Weighted_pre))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "可以发现加权结果相对于之前的结果是有提升的，这种我们称其为简单的加权平均。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "还有一些特殊的形式，比如mean平均，median平均"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "## 定义结果的加权平均函数\n",
    "def Mean_method(test_pre1,test_pre2,test_pre3):\n",
    "    Mean_result = pd.concat([pd.Series(test_pre1),pd.Series(test_pre2),pd.Series(test_pre3)],axis=1).mean(axis=1)\n",
    "    return Mean_result"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Mean_pre MAE: 0.06666666666666693\n"
     ]
    }
   ],
   "source": [
    "Mean_pre = Mean_method(test_pre1,test_pre2,test_pre3)\n",
    "print('Mean_pre MAE:',metrics.mean_absolute_error(y_test_true, Mean_pre))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "## 定义结果的加权平均函数\n",
    "def Median_method(test_pre1,test_pre2,test_pre3):\n",
    "    Median_result = pd.concat([pd.Series(test_pre1),pd.Series(test_pre2),pd.Series(test_pre3)],axis=1).median(axis=1)\n",
    "    return Median_result"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Median_pre MAE: 0.07500000000000007\n"
     ]
    }
   ],
   "source": [
    "Median_pre = Median_method(test_pre1,test_pre2,test_pre3)\n",
    "print('Median_pre MAE:',metrics.mean_absolute_error(y_test_true, Median_pre))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "####  2） Stacking融合(回归)："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn import linear_model\n",
    "\n",
    "def Stacking_method(train_reg1,train_reg2,train_reg3,y_train_true,test_pre1,test_pre2,test_pre3,model_L2= linear_model.LinearRegression()):\n",
    "    model_L2.fit(pd.concat([pd.Series(train_reg1),pd.Series(train_reg2),pd.Series(train_reg3)],axis=1).values,y_train_true)\n",
    "    Stacking_result = model_L2.predict(pd.concat([pd.Series(test_pre1),pd.Series(test_pre2),pd.Series(test_pre3)],axis=1).values)\n",
    "    return Stacking_result"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "## 生成一些简单的样本数据，test_prei 代表第i个模型的预测值\n",
    "train_reg1 = [3.2, 8.2, 9.1, 5.2]\n",
    "train_reg2 = [2.9, 8.1, 9.0, 4.9]\n",
    "train_reg3 = [3.1, 7.9, 9.2, 5.0]\n",
    "# y_test_true 代表第模型的真实值\n",
    "y_train_true = [3, 8, 9, 5] \n",
    "\n",
    "test_pre1 = [1.2, 3.2, 2.1, 6.2]\n",
    "test_pre2 = [0.9, 3.1, 2.0, 5.9]\n",
    "test_pre3 = [1.1, 2.9, 2.2, 6.0]\n",
    "\n",
    "# y_test_true 代表第模型的真实值\n",
    "y_test_true = [1, 3, 2, 6] "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Stacking_pre MAE: 0.04213483146067476\n"
     ]
    }
   ],
   "source": [
    "model_L2= linear_model.LinearRegression()\n",
    "Stacking_pre = Stacking_method(train_reg1,train_reg2,train_reg3,y_train_true,\n",
    "                               test_pre1,test_pre2,test_pre3,model_L2)\n",
    "print('Stacking_pre MAE:',metrics.mean_absolute_error(y_test_true, Stacking_pre))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "可以发现模型结果相对于之前有进一步的提升，这是我们需要注意的一点是，对于第二层Stacking的模型不宜选取的过于复杂，这样会导致模型在训练集上过拟合，从而使得在测试集上并不能达到很好的效果。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 5.4.2 分类模型融合：\n",
    "对于分类，同样的可以使用融合方法，比如简单投票，Stacking..."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.datasets import make_blobs\n",
    "from sklearn import datasets\n",
    "from sklearn.tree import DecisionTreeClassifier\n",
    "import numpy as np\n",
    "from sklearn.ensemble import RandomForestClassifier\n",
    "from sklearn.ensemble import VotingClassifier\n",
    "from xgboost import XGBClassifier\n",
    "from sklearn.linear_model import LogisticRegression\n",
    "from sklearn.svm import SVC\n",
    "from sklearn.model_selection import train_test_split\n",
    "from sklearn.datasets import make_moons\n",
    "from sklearn.metrics import accuracy_score,roc_auc_score\n",
    "from sklearn.model_selection import cross_val_score\n",
    "from sklearn.model_selection import StratifiedKFold"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 1）Voting投票机制：\n",
    "\n",
    "Voting即投票机制，分为软投票和硬投票两种，其原理采用少数服从多数的思想。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Accuracy: 0.96 (+/- 0.02) [XGBBoosting]\n",
      "Accuracy: 0.33 (+/- 0.00) [Random Forest]\n",
      "Accuracy: 0.92 (+/- 0.03) [SVM]\n",
      "Accuracy: 0.93 (+/- 0.05) [Ensemble]\n"
     ]
    }
   ],
   "source": [
    "'''\n",
    "硬投票：对多个模型直接进行投票，不区分模型结果的相对重要度，最终投票数最多的类为最终被预测的类。\n",
    "'''\n",
    "iris = datasets.load_iris()\n",
    "\n",
    "x=iris.data\n",
    "y=iris.target\n",
    "x_train,x_test,y_train,y_test=train_test_split(x,y,test_size=0.3)\n",
    "\n",
    "clf1 = XGBClassifier(learning_rate=0.1, n_estimators=150, max_depth=3, min_child_weight=2, subsample=0.7,\n",
    "                     colsample_bytree=0.6, objective='binary:logistic')\n",
    "clf2 = RandomForestClassifier(n_estimators=50, max_depth=1, min_samples_split=4,\n",
    "                              min_samples_leaf=63,oob_score=True)\n",
    "clf3 = SVC(C=0.1, probability=True,gamma='scale')\n",
    "\n",
    "# 硬投票\n",
    "eclf = VotingClassifier(estimators=[('xgb', clf1), ('rf', clf2), ('svc', clf3)], voting='hard')\n",
    "for clf, label in zip([clf1, clf2, clf3, eclf], ['XGBBoosting', 'Random Forest', 'SVM', 'Ensemble']):\n",
    "    scores = cross_val_score(clf, x, y, cv=5, scoring='accuracy')\n",
    "    print(\"Accuracy: %0.2f (+/- %0.2f) [%s]\" % (scores.mean(), scores.std(), label))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Accuracy: 0.96 (+/- 0.02) [XGBBoosting]\n",
      "Accuracy: 0.33 (+/- 0.00) [Random Forest]\n",
      "Accuracy: 0.92 (+/- 0.03) [SVM]\n",
      "Accuracy: 0.96 (+/- 0.02) [Ensemble]\n"
     ]
    }
   ],
   "source": [
    "'''\n",
    "软投票：和硬投票原理相同，增加了设置权重的功能，可以为不同模型设置不同权重，进而区别模型不同的重要度。\n",
    "'''\n",
    "x=iris.data\n",
    "y=iris.target\n",
    "x_train,x_test,y_train,y_test=train_test_split(x,y,test_size=0.3)\n",
    "\n",
    "clf1 = XGBClassifier(learning_rate=0.1, n_estimators=150, max_depth=3, min_child_weight=2, subsample=0.8,\n",
    "                     colsample_bytree=0.8, objective='binary:logistic')\n",
    "clf2 = RandomForestClassifier(n_estimators=50, max_depth=1, min_samples_split=4,\n",
    "                              min_samples_leaf=63,oob_score=True)\n",
    "clf3 = SVC(C=0.1, probability=True,gamma='scale')\n",
    "\n",
    "# 软投票\n",
    "eclf = VotingClassifier(estimators=[('xgb', clf1), ('rf', clf2), ('svc', clf3)], voting='soft', weights=[2, 1, 1])\n",
    "clf1.fit(x_train, y_train)\n",
    "\n",
    "for clf, label in zip([clf1, clf2, clf3, eclf], ['XGBBoosting', 'Random Forest', 'SVM', 'Ensemble']):\n",
    "    scores = cross_val_score(clf, x, y, cv=5, scoring='accuracy')\n",
    "    print(\"Accuracy: %0.2f (+/- %0.2f) [%s]\" % (scores.mean(), scores.std(), label))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 2）分类的Stacking\\Blending融合："
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "stacking是一种分层模型集成框架。\n",
    "\n",
    "> 以两层为例，第一层由多个基学习器组成，其输入为原始训练集，第二层的模型则是以第一层基学习器的输出作为训练集进行再训练，从而得到完整的stacking模型, stacking两层模型都使用了全部的训练数据。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "val auc Score: 1.000000\n",
      "val auc Score: 0.500000\n",
      "val auc Score: 0.500000\n",
      "val auc Score: 0.500000\n",
      "val auc Score: 0.500000\n",
      "Val auc Score of Stacking: 1.000000\n"
     ]
    }
   ],
   "source": [
    "'''\n",
    "5-Fold Stacking\n",
    "'''\n",
    "from sklearn.ensemble import RandomForestClassifier\n",
    "from sklearn.ensemble import ExtraTreesClassifier,GradientBoostingClassifier\n",
    "import pandas as pd\n",
    "#创建训练的数据集\n",
    "data_0 = iris.data\n",
    "data = data_0[:100,:]\n",
    "\n",
    "target_0 = iris.target\n",
    "target = target_0[:100]\n",
    "\n",
    "#模型融合中使用到的各个单模型\n",
    "clfs = [LogisticRegression(solver='lbfgs'),\n",
    "        RandomForestClassifier(n_estimators=5, n_jobs=-1, criterion='gini'),\n",
    "        ExtraTreesClassifier(n_estimators=5, n_jobs=-1, criterion='gini'),\n",
    "        ExtraTreesClassifier(n_estimators=5, n_jobs=-1, criterion='entropy'),\n",
    "        GradientBoostingClassifier(learning_rate=0.05, subsample=0.5, max_depth=6, n_estimators=5)]\n",
    " \n",
    "#切分一部分数据作为测试集\n",
    "X, X_predict, y, y_predict = train_test_split(data, target, test_size=0.3, random_state=2020)\n",
    "\n",
    "dataset_blend_train = np.zeros((X.shape[0], len(clfs)))\n",
    "dataset_blend_test = np.zeros((X_predict.shape[0], len(clfs)))\n",
    "\n",
    "#5折stacking\n",
    "n_splits = 5\n",
    "skf = StratifiedKFold(n_splits)\n",
    "skf = skf.split(X, y)\n",
    "\n",
    "for j, clf in enumerate(clfs):\n",
    "    #依次训练各个单模型\n",
    "    dataset_blend_test_j = np.zeros((X_predict.shape[0], 5))\n",
    "    for i, (train, test) in enumerate(skf):\n",
    "        #5-Fold交叉训练，使用第i个部分作为预测，剩余的部分来训练模型，获得其预测的输出作为第i部分的新特征。\n",
    "        X_train, y_train, X_test, y_test = X[train], y[train], X[test], y[test]\n",
    "        clf.fit(X_train, y_train)\n",
    "        y_submission = clf.predict_proba(X_test)[:, 1]\n",
    "        dataset_blend_train[test, j] = y_submission\n",
    "        dataset_blend_test_j[:, i] = clf.predict_proba(X_predict)[:, 1]\n",
    "    #对于测试集，直接用这k个模型的预测值均值作为新的特征。\n",
    "    dataset_blend_test[:, j] = dataset_blend_test_j.mean(1)\n",
    "    print(\"val auc Score: %f\" % roc_auc_score(y_predict, dataset_blend_test[:, j]))\n",
    "\n",
    "clf = LogisticRegression(solver='lbfgs')\n",
    "clf.fit(dataset_blend_train, y)\n",
    "y_submission = clf.predict_proba(dataset_blend_test)[:, 1]\n",
    "\n",
    "print(\"Val auc Score of Stacking: %f\" % (roc_auc_score(y_predict, y_submission)))\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Blending，其实和Stacking是一种类似的多层模型融合的形式\n",
    "\n",
    "> 其主要思路是把原始的训练集先分成两部分，比如70%的数据作为新的训练集，剩下30%的数据作为测试集。\n",
    "\n",
    "> 在第一层，我们在这70%的数据上训练多个模型，然后去预测那30%数据的label，同时也预测test集的label。\n",
    "\n",
    "> 在第二层，我们就直接用这30%数据在第一层预测的结果做为新特征继续训练，然后用test集第一层预测的label做特征，用第二层训练的模型做进一步预测\n",
    "\n",
    "其优点在于：\n",
    "* 1.比stacking简单（因为不用进行k次的交叉验证来获得stacker feature）\n",
    "* 2.避开了一个信息泄露问题：generlizers和stacker使用了不一样的数据集\n",
    "\n",
    "缺点在于：\n",
    "* 1.使用了很少的数据（第二阶段的blender只使用training set10%的量）\n",
    "* 2.blender可能会过拟合\n",
    "* 3.stacking使用多次的交叉验证会比较稳健\n",
    "'''"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "val auc Score: 1.000000\n",
      "val auc Score: 1.000000\n",
      "val auc Score: 1.000000\n",
      "val auc Score: 1.000000\n",
      "val auc Score: 1.000000\n",
      "Val auc Score of Blending: 1.000000\n"
     ]
    }
   ],
   "source": [
    "'''\n",
    "Blending\n",
    "'''\n",
    " \n",
    "#创建训练的数据集\n",
    "#创建训练的数据集\n",
    "data_0 = iris.data\n",
    "data = data_0[:100,:]\n",
    "\n",
    "target_0 = iris.target\n",
    "target = target_0[:100]\n",
    " \n",
    "#模型融合中使用到的各个单模型\n",
    "clfs = [LogisticRegression(solver='lbfgs'),\n",
    "        RandomForestClassifier(n_estimators=5, n_jobs=-1, criterion='gini'),\n",
    "        RandomForestClassifier(n_estimators=5, n_jobs=-1, criterion='entropy'),\n",
    "        ExtraTreesClassifier(n_estimators=5, n_jobs=-1, criterion='gini'),\n",
    "        #ExtraTreesClassifier(n_estimators=5, n_jobs=-1, criterion='entropy'),\n",
    "        GradientBoostingClassifier(learning_rate=0.05, subsample=0.5, max_depth=6, n_estimators=5)]\n",
    " \n",
    "#切分一部分数据作为测试集\n",
    "X, X_predict, y, y_predict = train_test_split(data, target, test_size=0.3, random_state=2020)\n",
    "\n",
    "#切分训练数据集为d1,d2两部分\n",
    "X_d1, X_d2, y_d1, y_d2 = train_test_split(X, y, test_size=0.5, random_state=2020)\n",
    "dataset_d1 = np.zeros((X_d2.shape[0], len(clfs)))\n",
    "dataset_d2 = np.zeros((X_predict.shape[0], len(clfs)))\n",
    " \n",
    "for j, clf in enumerate(clfs):\n",
    "    #依次训练各个单模型\n",
    "    clf.fit(X_d1, y_d1)\n",
    "    y_submission = clf.predict_proba(X_d2)[:, 1]\n",
    "    dataset_d1[:, j] = y_submission\n",
    "    #对于测试集，直接用这k个模型的预测值作为新的特征。\n",
    "    dataset_d2[:, j] = clf.predict_proba(X_predict)[:, 1]\n",
    "    print(\"val auc Score: %f\" % roc_auc_score(y_predict, dataset_d2[:, j]))\n",
    "\n",
    "#融合使用的模型\n",
    "clf = GradientBoostingClassifier(learning_rate=0.02, subsample=0.5, max_depth=6, n_estimators=30)\n",
    "clf.fit(dataset_d1, y_d2)\n",
    "y_submission = clf.predict_proba(dataset_d2)[:, 1]\n",
    "print(\"Val auc Score of Blending: %f\" % (roc_auc_score(y_predict, y_submission)))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "参考博客：https://blog.csdn.net/Noob_daniel/article/details/76087829"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 3）分类的Stacking融合(利用mlxtend)："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Accuracy: 0.91 (+/- 0.01) [KNN]\n",
      "Accuracy: 0.93 (+/- 0.05) [Random Forest]\n",
      "Accuracy: 0.92 (+/- 0.03) [Naive Bayes]\n",
      "Accuracy: 0.95 (+/- 0.03) [Stacking Classifier]\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<Figure size 1000x800 with 4 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#!pip install mlxtend\n",
    "\n",
    "import warnings\n",
    "warnings.filterwarnings('ignore')\n",
    "import itertools\n",
    "import numpy as np\n",
    "import seaborn as sns\n",
    "import matplotlib.pyplot as plt\n",
    "import matplotlib.gridspec as gridspec\n",
    "\n",
    "from sklearn import datasets\n",
    "from sklearn.linear_model import LogisticRegression\n",
    "from sklearn.neighbors import KNeighborsClassifier\n",
    "from sklearn.naive_bayes import GaussianNB \n",
    "from sklearn.ensemble import RandomForestClassifier\n",
    "from mlxtend.classifier import StackingClassifier\n",
    "\n",
    "from sklearn.model_selection import cross_val_score\n",
    "from mlxtend.plotting import plot_learning_curves\n",
    "from mlxtend.plotting import plot_decision_regions\n",
    "\n",
    "# 以python自带的鸢尾花数据集为例\n",
    "iris = datasets.load_iris()\n",
    "X, y = iris.data[:, 1:3], iris.target\n",
    "\n",
    "clf1 = KNeighborsClassifier(n_neighbors=1)\n",
    "clf2 = RandomForestClassifier(random_state=1)\n",
    "clf3 = GaussianNB()\n",
    "lr = LogisticRegression()\n",
    "sclf = StackingClassifier(classifiers=[clf1, clf2, clf3], \n",
    "                          meta_classifier=lr)\n",
    "\n",
    "label = ['KNN', 'Random Forest', 'Naive Bayes', 'Stacking Classifier']\n",
    "clf_list = [clf1, clf2, clf3, sclf]\n",
    "\n",
    "fig = plt.figure(figsize=(10,8))\n",
    "gs = gridspec.GridSpec(2, 2)\n",
    "grid = itertools.product([0,1],repeat=2)\n",
    "\n",
    "clf_cv_mean = []\n",
    "clf_cv_std = []\n",
    "for clf, label, grd in zip(clf_list, label, grid):\n",
    "        \n",
    "    scores = cross_val_score(clf, X, y, cv=3, scoring='accuracy')\n",
    "    print(\"Accuracy: %.2f (+/- %.2f) [%s]\" %(scores.mean(), scores.std(), label))\n",
    "    clf_cv_mean.append(scores.mean())\n",
    "    clf_cv_std.append(scores.std())\n",
    "        \n",
    "    clf.fit(X, y)\n",
    "    ax = plt.subplot(gs[grd[0], grd[1]])\n",
    "    fig = plot_decision_regions(X=X, y=y, clf=clf)\n",
    "    plt.title(label)\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "可以发现 基模型 用 'KNN', 'Random Forest', 'Naive Bayes' 然后再这基础上 次级模型加一个 'LogisticRegression'，模型测试效果有着很好的提升。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 5.4.3 一些其它方法："
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 将特征放进模型中预测，并将预测结果变换并作为新的特征加入原有特征中再经过模型预测结果 （Stacking变化）\n",
    "\n",
    "（可以反复预测多次将结果加入最后的特征中）"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-12-24T12:50:55.020619Z",
     "start_time": "2019-12-24T12:50:55.004659Z"
    }
   },
   "outputs": [],
   "source": [
    "def Ensemble_add_feature(train,test,target,clfs):\n",
    "    \n",
    "    # n_flods = 5\n",
    "    # skf = list(StratifiedKFold(y, n_folds=n_flods))\n",
    "\n",
    "    train_ = np.zeros((train.shape[0],len(clfs*2)))\n",
    "    test_ = np.zeros((test.shape[0],len(clfs*2)))\n",
    "\n",
    "    for j,clf in enumerate(clfs):\n",
    "        '''依次训练各个单模型'''\n",
    "        # print(j, clf)\n",
    "        '''使用第1个部分作为预测，第2部分来训练模型，获得其预测的输出作为第2部分的新特征。'''\n",
    "        # X_train, y_train, X_test, y_test = X[train], y[train], X[test], y[test]\n",
    "\n",
    "        clf.fit(train,target)\n",
    "        y_train = clf.predict(train)\n",
    "        y_test = clf.predict(test)\n",
    "\n",
    "        ## 新特征生成\n",
    "        train_[:,j*2] = y_train**2\n",
    "        test_[:,j*2] = y_test**2\n",
    "        train_[:, j+1] = np.exp(y_train)\n",
    "        test_[:, j+1] = np.exp(y_test)\n",
    "        # print(\"val auc Score: %f\" % r2_score(y_predict, dataset_d2[:, j]))\n",
    "        print('Method ',j)\n",
    "    \n",
    "    train_ = pd.DataFrame(train_)\n",
    "    test_ = pd.DataFrame(test_)\n",
    "    return train_,test_\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Method  0\n",
      "Method  1\n",
      "Method  2\n",
      "Method  3\n",
      "Method  4\n",
      "Val auc Score of stacking: 1.000000\n"
     ]
    }
   ],
   "source": [
    "from sklearn.model_selection import cross_val_score, train_test_split\n",
    "from sklearn.linear_model import LogisticRegression\n",
    "clf = LogisticRegression()\n",
    "\n",
    "data_0 = iris.data\n",
    "data = data_0[:100,:]\n",
    "\n",
    "target_0 = iris.target\n",
    "target = target_0[:100]\n",
    "\n",
    "x_train,x_test,y_train,y_test=train_test_split(data,target,test_size=0.3)\n",
    "x_train = pd.DataFrame(x_train) ; x_test = pd.DataFrame(x_test)\n",
    "\n",
    "#模型融合中使用到的各个单模型\n",
    "clfs = [LogisticRegression(),\n",
    "        RandomForestClassifier(n_estimators=5, n_jobs=-1, criterion='gini'),\n",
    "        ExtraTreesClassifier(n_estimators=5, n_jobs=-1, criterion='gini'),\n",
    "        ExtraTreesClassifier(n_estimators=5, n_jobs=-1, criterion='entropy'),\n",
    "        GradientBoostingClassifier(learning_rate=0.05, subsample=0.5, max_depth=6, n_estimators=5)]\n",
    "\n",
    "New_train,New_test = Ensemble_add_feature(x_train,x_test,y_train,clfs)\n",
    "\n",
    "clf = LogisticRegression()\n",
    "# clf = GradientBoostingClassifier(learning_rate=0.02, subsample=0.5, max_depth=6, n_estimators=30)\n",
    "clf.fit(New_train, y_train)\n",
    "y_emb = clf.predict_proba(New_test)[:, 1]\n",
    "\n",
    "print(\"Val auc Score of stacking: %f\" % (roc_auc_score(y_test, y_emb)))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 5.4.4 本赛题示例"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "import warnings\n",
    "import matplotlib\n",
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns\n",
    "\n",
    "warnings.filterwarnings('ignore')\n",
    "%matplotlib inline\n",
    "\n",
    "import itertools\n",
    "import matplotlib.gridspec as gridspec\n",
    "from sklearn import datasets\n",
    "from sklearn.linear_model import LogisticRegression\n",
    "from sklearn.neighbors import KNeighborsClassifier\n",
    "from sklearn.naive_bayes import GaussianNB \n",
    "from sklearn.ensemble import RandomForestClassifier\n",
    "from mlxtend.classifier import StackingClassifier\n",
    "from sklearn.model_selection import cross_val_score, train_test_split\n",
    "from mlxtend.plotting import plot_learning_curves\n",
    "from mlxtend.plotting import plot_decision_regions\n",
    "\n",
    "from sklearn.model_selection import StratifiedKFold\n",
    "from sklearn.model_selection import train_test_split\n",
    "\n",
    "from sklearn import linear_model\n",
    "from sklearn import preprocessing\n",
    "from sklearn.svm import SVR\n",
    "from sklearn.decomposition import PCA,FastICA,FactorAnalysis,SparsePCA\n",
    "\n",
    "import lightgbm as lgb\n",
    "import xgboost as xgb\n",
    "from sklearn.model_selection import GridSearchCV,cross_val_score\n",
    "from sklearn.ensemble import RandomForestRegressor,GradientBoostingRegressor\n",
    "\n",
    "from sklearn.metrics import mean_squared_error, mean_absolute_error"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(150000, 31)\n",
      "(50000, 30)\n"
     ]
    }
   ],
   "source": [
    "Train_data = pd.read_csv('./data/train.csv', sep=' ')\n",
    "TestA_data = pd.read_csv('./data/testA.csv', sep=' ')\n",
    "print(Train_data.shape)\n",
    "print(TestA_data.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>SaleID</th>\n",
       "      <th>name</th>\n",
       "      <th>regDate</th>\n",
       "      <th>model</th>\n",
       "      <th>brand</th>\n",
       "      <th>bodyType</th>\n",
       "      <th>fuelType</th>\n",
       "      <th>gearbox</th>\n",
       "      <th>power</th>\n",
       "      <th>kilometer</th>\n",
       "      <th>...</th>\n",
       "      <th>v_5</th>\n",
       "      <th>v_6</th>\n",
       "      <th>v_7</th>\n",
       "      <th>v_8</th>\n",
       "      <th>v_9</th>\n",
       "      <th>v_10</th>\n",
       "      <th>v_11</th>\n",
       "      <th>v_12</th>\n",
       "      <th>v_13</th>\n",
       "      <th>v_14</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0</td>\n",
       "      <td>736</td>\n",
       "      <td>20040402</td>\n",
       "      <td>30.0</td>\n",
       "      <td>6</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>60</td>\n",
       "      <td>12.5</td>\n",
       "      <td>...</td>\n",
       "      <td>0.235676</td>\n",
       "      <td>0.101988</td>\n",
       "      <td>0.129549</td>\n",
       "      <td>0.022816</td>\n",
       "      <td>0.097462</td>\n",
       "      <td>-2.881803</td>\n",
       "      <td>2.804097</td>\n",
       "      <td>-2.420821</td>\n",
       "      <td>0.795292</td>\n",
       "      <td>0.914762</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1</td>\n",
       "      <td>2262</td>\n",
       "      <td>20030301</td>\n",
       "      <td>40.0</td>\n",
       "      <td>1</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>15.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.264777</td>\n",
       "      <td>0.121004</td>\n",
       "      <td>0.135731</td>\n",
       "      <td>0.026597</td>\n",
       "      <td>0.020582</td>\n",
       "      <td>-4.900482</td>\n",
       "      <td>2.096338</td>\n",
       "      <td>-1.030483</td>\n",
       "      <td>-1.722674</td>\n",
       "      <td>0.245522</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2</td>\n",
       "      <td>14874</td>\n",
       "      <td>20040403</td>\n",
       "      <td>115.0</td>\n",
       "      <td>15</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>163</td>\n",
       "      <td>12.5</td>\n",
       "      <td>...</td>\n",
       "      <td>0.251410</td>\n",
       "      <td>0.114912</td>\n",
       "      <td>0.165147</td>\n",
       "      <td>0.062173</td>\n",
       "      <td>0.027075</td>\n",
       "      <td>-4.846749</td>\n",
       "      <td>1.803559</td>\n",
       "      <td>1.565330</td>\n",
       "      <td>-0.832687</td>\n",
       "      <td>-0.229963</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>3</td>\n",
       "      <td>71865</td>\n",
       "      <td>19960908</td>\n",
       "      <td>109.0</td>\n",
       "      <td>10</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>193</td>\n",
       "      <td>15.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.274293</td>\n",
       "      <td>0.110300</td>\n",
       "      <td>0.121964</td>\n",
       "      <td>0.033395</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>-4.509599</td>\n",
       "      <td>1.285940</td>\n",
       "      <td>-0.501868</td>\n",
       "      <td>-2.438353</td>\n",
       "      <td>-0.478699</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>4</td>\n",
       "      <td>111080</td>\n",
       "      <td>20120103</td>\n",
       "      <td>110.0</td>\n",
       "      <td>5</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>68</td>\n",
       "      <td>5.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.228036</td>\n",
       "      <td>0.073205</td>\n",
       "      <td>0.091880</td>\n",
       "      <td>0.078819</td>\n",
       "      <td>0.121534</td>\n",
       "      <td>-1.896240</td>\n",
       "      <td>0.910783</td>\n",
       "      <td>0.931110</td>\n",
       "      <td>2.834518</td>\n",
       "      <td>1.923482</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 31 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "   SaleID    name   regDate  model  brand  bodyType  fuelType  gearbox  power  \\\n",
       "0       0     736  20040402   30.0      6       1.0       0.0      0.0     60   \n",
       "1       1    2262  20030301   40.0      1       2.0       0.0      0.0      0   \n",
       "2       2   14874  20040403  115.0     15       1.0       0.0      0.0    163   \n",
       "3       3   71865  19960908  109.0     10       0.0       0.0      1.0    193   \n",
       "4       4  111080  20120103  110.0      5       1.0       0.0      0.0     68   \n",
       "\n",
       "   kilometer  ...       v_5       v_6       v_7       v_8       v_9      v_10  \\\n",
       "0       12.5  ...  0.235676  0.101988  0.129549  0.022816  0.097462 -2.881803   \n",
       "1       15.0  ...  0.264777  0.121004  0.135731  0.026597  0.020582 -4.900482   \n",
       "2       12.5  ...  0.251410  0.114912  0.165147  0.062173  0.027075 -4.846749   \n",
       "3       15.0  ...  0.274293  0.110300  0.121964  0.033395  0.000000 -4.509599   \n",
       "4        5.0  ...  0.228036  0.073205  0.091880  0.078819  0.121534 -1.896240   \n",
       "\n",
       "       v_11      v_12      v_13      v_14  \n",
       "0  2.804097 -2.420821  0.795292  0.914762  \n",
       "1  2.096338 -1.030483 -1.722674  0.245522  \n",
       "2  1.803559  1.565330 -0.832687 -0.229963  \n",
       "3  1.285940 -0.501868 -2.438353 -0.478699  \n",
       "4  0.910783  0.931110  2.834518  1.923482  \n",
       "\n",
       "[5 rows x 31 columns]"
      ]
     },
     "execution_count": 38,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "Train_data.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Index(['SaleID', 'name', 'regDate', 'model', 'brand', 'bodyType', 'fuelType',\n",
      "       'gearbox', 'power', 'kilometer', 'regionCode', 'seller', 'offerType',\n",
      "       'creatDate', 'price', 'v_0', 'v_1', 'v_2', 'v_3', 'v_4', 'v_5', 'v_6',\n",
      "       'v_7', 'v_8', 'v_9', 'v_10', 'v_11', 'v_12', 'v_13', 'v_14'],\n",
      "      dtype='object')\n"
     ]
    }
   ],
   "source": [
    "numerical_cols = Train_data.select_dtypes(exclude = 'object').columns\n",
    "print(numerical_cols)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [],
   "source": [
    "feature_cols = [col for col in numerical_cols if col not in ['SaleID','name','regDate','price']]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "X train shape: (150000, 26)\n",
      "X test shape: (50000, 26)\n"
     ]
    }
   ],
   "source": [
    "X_data = Train_data[feature_cols]\n",
    "Y_data = Train_data['price']\n",
    "\n",
    "X_test  = TestA_data[feature_cols]\n",
    "\n",
    "print('X train shape:',X_data.shape)\n",
    "print('X test shape:',X_test.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {},
   "outputs": [],
   "source": [
    "def Sta_inf(data):\n",
    "    print('_min',np.min(data))\n",
    "    print('_max:',np.max(data))\n",
    "    print('_mean',np.mean(data))\n",
    "    print('_ptp',np.ptp(data))\n",
    "    print('_std',np.std(data))\n",
    "    print('_var',np.var(data))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Sta of label:\n",
      "_min 11\n",
      "_max: 99999\n",
      "_mean 5923.327333333334\n",
      "_ptp 99988\n",
      "_std 7501.973469876438\n",
      "_var 56279605.94272992\n"
     ]
    }
   ],
   "source": [
    "print('Sta of label:')\n",
    "Sta_inf(Y_data)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {},
   "outputs": [],
   "source": [
    "X_data = X_data.fillna(-1)\n",
    "X_test = X_test.fillna(-1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {},
   "outputs": [],
   "source": [
    "def build_model_lr(x_train,y_train):\n",
    "    reg_model = linear_model.LinearRegression()\n",
    "    reg_model.fit(x_train,y_train)\n",
    "    return reg_model\n",
    "\n",
    "def build_model_ridge(x_train,y_train):\n",
    "    reg_model = linear_model.Ridge(alpha=0.8)#alphas=range(1,100,5)\n",
    "    reg_model.fit(x_train,y_train)\n",
    "    return reg_model\n",
    "\n",
    "def build_model_lasso(x_train,y_train):\n",
    "    reg_model = linear_model.LassoCV()\n",
    "    reg_model.fit(x_train,y_train)\n",
    "    return reg_model\n",
    "\n",
    "def build_model_xgb(x_train,y_train):\n",
    "    model = xgb.XGBRegressor(n_estimators=120, learning_rate=0.08, gamma=0, subsample=0.75,\\\n",
    "        colsample_bytree=1, max_depth=5, objective ='reg:squarederror')\n",
    "    model.fit(x_train, y_train)\n",
    "    return model\n",
    "\n",
    "def build_model_gbdt(x_train,y_train):\n",
    "    estimator =GradientBoostingRegressor(loss='ls',subsample= 0.85,max_depth= 5)\n",
    "    param_grid = { \n",
    "            'learning_rate': [0.05,0.08,0.1],\n",
    "            'n_estimators': range(80,100,20), \n",
    "             #[0.75,0.85,0.90,1.0],\n",
    "             # range(3,7)\n",
    "            }\n",
    "    gbdt = GridSearchCV(estimator, param_grid,cv=3)\n",
    "    gbdt.fit(x_train,y_train)\n",
    "    print(gbdt.best_params_)\n",
    "    # print(gbdt.best_estimator_ )\n",
    "    return gbdt\n",
    "\n",
    "def build_model_lgb(x_train,y_train):\n",
    "    estimator = lgb.LGBMRegressor(num_leaves=90,n_estimators = 100)\n",
    "    param_grid = {\n",
    "        'learning_rate': [0.01, 0.05, 0.1],\n",
    "    }\n",
    "    gbm = GridSearchCV(estimator, param_grid)\n",
    "    gbm.fit(x_train, y_train)\n",
    "    return gbm\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 2）XGBoost的五折交叉回归验证实现"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 59,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Train mae: 600.5652483086344\n",
      "Val mae 692.8497931628344\n"
     ]
    }
   ],
   "source": [
    "## xgb\n",
    "xgr = xgb.XGBRegressor(n_estimators=120, learning_rate=0.1, subsample=0.8,\\\n",
    "        colsample_bytree=0.9, max_depth=7,objective ='reg:squarederror')\n",
    "\n",
    "scores_train = []\n",
    "scores = []\n",
    "\n",
    "## 5折交叉验证方式\n",
    "sk=StratifiedKFold(n_splits=5,shuffle=True,random_state=0)\n",
    "for train_ind,val_ind in sk.split(X_data,Y_data):\n",
    "    \n",
    "    train_x=X_data.iloc[train_ind].values\n",
    "    train_y=Y_data.iloc[train_ind]\n",
    "    val_x=X_data.iloc[val_ind].values\n",
    "    val_y=Y_data.iloc[val_ind]\n",
    "    \n",
    "    xgr.fit(train_x,train_y)\n",
    "    pred_train_xgb=xgr.predict(train_x)\n",
    "    pred_xgb=xgr.predict(val_x)\n",
    "    \n",
    "    score_train = mean_absolute_error(train_y,pred_train_xgb)\n",
    "    scores_train.append(score_train)\n",
    "    score = mean_absolute_error(val_y,pred_xgb)\n",
    "    scores.append(score)\n",
    "\n",
    "print('Train mae:',np.mean(score_train))\n",
    "print('Val mae',np.mean(scores))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 3）划分数据集，并用多种方法训练和预测"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Predict LR...\n",
      "Predict Ridge...\n",
      "Predict Lasso...\n",
      "Predict GBDT...\n",
      "{'learning_rate': 0.1, 'n_estimators': 80}\n"
     ]
    }
   ],
   "source": [
    "## Split data with val\n",
    "x_train,x_val,y_train,y_val = train_test_split(X_data,Y_data,test_size=0.3)\n",
    "\n",
    "## Train and Predict\n",
    "print('Predict LR...')\n",
    "model_lr = build_model_lr(x_train,y_train)\n",
    "val_lr = model_lr.predict(x_val)\n",
    "subA_lr = model_lr.predict(X_test)\n",
    "\n",
    "print('Predict Ridge...')\n",
    "model_ridge = build_model_ridge(x_train,y_train)\n",
    "val_ridge = model_ridge.predict(x_val)\n",
    "subA_ridge = model_ridge.predict(X_test)\n",
    "\n",
    "print('Predict Lasso...')\n",
    "model_lasso = build_model_lasso(x_train,y_train)\n",
    "val_lasso = model_lasso.predict(x_val)\n",
    "subA_lasso = model_lasso.predict(X_test)\n",
    "\n",
    "print('Predict GBDT...')\n",
    "model_gbdt = build_model_gbdt(x_train,y_train)\n",
    "val_gbdt = model_gbdt.predict(x_val)\n",
    "subA_gbdt = model_gbdt.predict(X_test)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 一般比赛中效果最为显著的两种方法"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "predict XGB...\n",
      "predict lgb...\n"
     ]
    }
   ],
   "source": [
    "print('predict XGB...')\n",
    "model_xgb = build_model_xgb(x_train,y_train)\n",
    "val_xgb = model_xgb.predict(x_val)\n",
    "subA_xgb = model_xgb.predict(X_test)\n",
    "\n",
    "print('predict lgb...')\n",
    "model_lgb = build_model_lgb(x_train,y_train)\n",
    "val_lgb = model_lgb.predict(x_val)\n",
    "subA_lgb = model_lgb.predict(X_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Sta inf of lgb:\n",
      "_min -231.97864002509178\n",
      "_max: 89971.27921107733\n",
      "_mean 5923.722792928779\n",
      "_ptp 90203.25785110242\n",
      "_std 7368.089474635764\n",
      "_var 54288742.50623834\n"
     ]
    }
   ],
   "source": [
    "print('Sta inf of lgb:')\n",
    "Sta_inf(subA_lgb)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "###  1）加权融合"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "MAE of Weighted of val: 737.7049920880862\n",
      "Sta inf:\n",
      "_min -35.88564457190722\n",
      "_max: 91662.83920292513\n",
      "_mean 5926.849949933321\n",
      "_ptp 91698.72484749704\n",
      "_std 7340.910362680329\n",
      "_var 53888964.95290744\n"
     ]
    }
   ],
   "source": [
    "def Weighted_method(test_pre1,test_pre2,test_pre3,w=[1/3,1/3,1/3]):\n",
    "    Weighted_result = w[0]*pd.Series(test_pre1)+w[1]*pd.Series(test_pre2)+w[2]*pd.Series(test_pre3)\n",
    "    return Weighted_result\n",
    "\n",
    "## Init the Weight\n",
    "w = [0.3,0.4,0.3]\n",
    "\n",
    "## 测试验证集准确度\n",
    "val_pre = Weighted_method(val_lgb,val_xgb,val_gbdt,w)\n",
    "MAE_Weighted = mean_absolute_error(y_val,val_pre)\n",
    "print('MAE of Weighted of val:',MAE_Weighted)\n",
    "\n",
    "## 预测数据部分\n",
    "subA = Weighted_method(subA_lgb,subA_xgb,subA_gbdt,w)\n",
    "print('Sta inf:')\n",
    "Sta_inf(subA)\n",
    "## 生成提交文件\n",
    "sub = pd.DataFrame()\n",
    "sub['SaleID'] = X_test.index\n",
    "sub['price'] = subA\n",
    "sub.to_csv('./sub_Weighted.csv',index=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "MAE of lr: 2605.419700740115\n"
     ]
    }
   ],
   "source": [
    "## 与简单的LR（线性回归）进行对比\n",
    "val_lr_pred = model_lr.predict(x_val)\n",
    "MAE_lr = mean_absolute_error(y_val,val_lr_pred)\n",
    "print('MAE of lr:',MAE_lr)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "###  2）Starking融合"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "metadata": {},
   "outputs": [],
   "source": [
    "## Starking\n",
    "\n",
    "## 第一层\n",
    "train_lgb_pred = model_lgb.predict(x_train)\n",
    "train_xgb_pred = model_xgb.predict(x_train)\n",
    "train_gbdt_pred = model_gbdt.predict(x_train)\n",
    "\n",
    "Strak_X_train = pd.DataFrame()\n",
    "Strak_X_train['Method_1'] = train_lgb_pred\n",
    "Strak_X_train['Method_2'] = train_xgb_pred\n",
    "Strak_X_train['Method_3'] = train_gbdt_pred\n",
    "\n",
    "Strak_X_val = pd.DataFrame()\n",
    "Strak_X_val['Method_1'] = val_lgb\n",
    "Strak_X_val['Method_2'] = val_xgb\n",
    "Strak_X_val['Method_3'] = val_gbdt\n",
    "\n",
    "Strak_X_test = pd.DataFrame()\n",
    "Strak_X_test['Method_1'] = subA_lgb\n",
    "Strak_X_test['Method_2'] = subA_xgb\n",
    "Strak_X_test['Method_3'] = subA_gbdt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Method_1</th>\n",
       "      <th>Method_2</th>\n",
       "      <th>Method_3</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>37210.089757</td>\n",
       "      <td>38310.128906</td>\n",
       "      <td>40471.936295</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>263.838573</td>\n",
       "      <td>334.899109</td>\n",
       "      <td>372.662611</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>6825.507564</td>\n",
       "      <td>7207.283691</td>\n",
       "      <td>7524.157036</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>11666.397919</td>\n",
       "      <td>11322.647461</td>\n",
       "      <td>11435.469381</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>548.381706</td>\n",
       "      <td>513.197693</td>\n",
       "      <td>501.400579</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       Method_1      Method_2      Method_3\n",
       "0  37210.089757  38310.128906  40471.936295\n",
       "1    263.838573    334.899109    372.662611\n",
       "2   6825.507564   7207.283691   7524.157036\n",
       "3  11666.397919  11322.647461  11435.469381\n",
       "4    548.381706    513.197693    501.400579"
      ]
     },
     "execution_count": 53,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "Strak_X_test.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "MAE of Stacking-LR: 585.3428549221672\n",
      "MAE of Stacking-LR: 705.8164604060487\n",
      "Predict Stacking-LR...\n"
     ]
    }
   ],
   "source": [
    "## level2-method \n",
    "model_lr_Stacking = build_model_lr(Strak_X_train,y_train)\n",
    "## 训练集\n",
    "train_pre_Stacking = model_lr_Stacking.predict(Strak_X_train)\n",
    "print('MAE of Stacking-LR:',mean_absolute_error(y_train,train_pre_Stacking))\n",
    "\n",
    "## 验证集\n",
    "val_pre_Stacking = model_lr_Stacking.predict(Strak_X_val)\n",
    "print('MAE of Stacking-LR:',mean_absolute_error(y_val,val_pre_Stacking))\n",
    "\n",
    "## 预测集\n",
    "print('Predict Stacking-LR...')\n",
    "subA_Stacking = model_lr_Stacking.predict(Strak_X_test)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "metadata": {},
   "outputs": [],
   "source": [
    "sub = pd.DataFrame()\n",
    "sub['SaleID'] = X_test.index\n",
    "sub['price'] = subA_Stacking\n",
    "sub.to_csv('./sub_Stacking.csv',index=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 58,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Sta inf:\n",
      "_min -351.8594038938673\n",
      "_max: 91172.50222238679\n",
      "_mean 5922.269323408767\n",
      "_ptp 91524.36162628065\n",
      "_std 7406.024637057618\n",
      "_var 54849200.92470442\n"
     ]
    }
   ],
   "source": [
    "print('Sta inf:')\n",
    "Sta_inf(subA_Stacking)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 3.4 经验总结"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "比赛的融合这个问题，个人的看法来说其实涉及多个层面，也是提分和提升模型鲁棒性的一种重要方法：\n",
    "\n",
    "* 1）**结果层面的融合**，这种是最常见的融合方法，其可行的融合方法也有很多，比如根据结果的得分进行加权融合，还可以做Log，exp处理等。在做结果融合的时候，有一个很重要的条件是模型结果的得分要比较近似，然后结果的差异要比较大，这样的结果融合往往有比较好的效果提升。\n",
    "\n",
    "* 2）**特征层面的融合**，这个层面其实感觉不叫融合，准确说可以叫分割，很多时候如果我们用同种模型训练，可以把特征进行切分给不同的模型，然后在后面进行模型或者结果融合有时也能产生比较好的效果。\n",
    "\n",
    "* 3）**模型层面的融合**，模型层面的融合可能就涉及模型的堆叠和设计，比如加Staking层，部分模型的结果作为特征输入等，这些就需要多实验和思考了，基于模型层面的融合最好不同模型类型要有一定的差异，用同种模型不同的参数的收益一般是比较小的。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**Task 5-模型融合 END.**\n",
    "\n",
    "--- By: ML67 \n",
    "\n",
    "        Email: maolinw67@163.com\n",
    "        PS: 华中科技大学研究生, 长期混迹Tianchi等，希望和大家多多交流。\n",
    "        github: https://github.com/mlw67 （近期会做一些书籍推导和代码的整理）"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**关于Datawhale：**\n",
    "\n",
    "> Datawhale是一个专注于数据科学与AI领域的开源组织，汇集了众多领域院校和知名企业的优秀学习者，聚合了一群有开源精神和探索精神的团队成员。Datawhale 以“for the learner，和学习者一起成长”为愿景，鼓励真实地展现自我、开放包容、互信互助、敢于试错和勇于担当。同时 Datawhale 用开源的理念去探索开源内容、开源学习和开源方案，赋能人才培养，助力人才成长，建立起人与人，人与知识，人与企业和人与未来的联结。\n",
    "\n",
    "本次数据挖掘路径学习，专题知识将在天池分享，详情可关注Datawhale：\n",
    "\n",
    "![](http://jupter-oss.oss-cn-hangzhou.aliyuncs.com/public/files/image/2326541042/1584426326920_9FOUExG2be.jpg)\n"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.3"
  },
  "toc": {
   "base_numbering": 1,
   "nav_menu": {},
   "number_sections": true,
   "sideBar": true,
   "skip_h1_title": false,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": false,
   "toc_position": {
    "height": "calc(100% - 180px)",
    "left": "10px",
    "top": "150px",
    "width": "307.2px"
   },
   "toc_section_display": true,
   "toc_window_display": true
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
